In digital television systems, the television is provided with a set top box to receive and decode a broadcast digital data stream which contains program information for display on the television. The broadcast digital data stream may arise at the set top box via a satellite or cable system, via a digital terrestrial system, or via disk or tape. A disk or tape, such as a CD ROM in a personal computer, may provide digital video information for display on the monitor.
There are various known standards for digital video broadcasting (DVB) and one now commonly used standard is the MPEG-2 standard.
In the MPEG-2 DVB standard, data is encoded into transport packets. Each transport packet is defined by the standard as consisting of 188 bytes, comprising four header bytes and 184 payload bytes (“the data payload”). For transmission, the transport packets are time division multiplexed into a transport stream. At the receiver in the set top box, the transport stream is demultiplexed to recover the transport packets. Optionally, the transport packets may be scrambled and encoded with error correction information for transmission and then descrambled and error checked at the receiver. The data payload in the transport packets is, according to the MPEG-2 standard, one of two types. The first type is known is a packetised elementary stream (PES), and the second type is known as program specific information (PSI).
The packetised elementary streams (PESs) form the video, audio and private data information of the broadcast. A PES packet may contain all sorts of data, audio or video and also other information such as teletext or other user defined general data. The MPEG-2 transport stream is made up of one or more PESs (either video, audio or private). The MPEG-2 transport stream is primarily intended for the transport of TV programs over long distances. This type of stream can combine, in the same multiplex, many programs, each of them being composed of one or more PESs. In order that the receiver can cope with this mix of program information, the MPEG-2 standard defines all types of tables, which together make up the MPEG-2 program specific information (PSI).
Each table of the PSI is made up of one or more sections, there being a maximum of 256 sections for each table. The MPEG-2 tables are defined in the standard, and include a program allocation table, a program map table, a conditional access table and private tables. The European DVB standard additionally defines complementary service information tables. The basic service information tables are the network information table, service description table, event information table, and time and date table. The optional service information tables are the bouquet association tables, running status tables, and stuffing tables. Each section includes an optional cyclic redundancy code (CRC) check.
A PES packet always starts at the beginning of the payload part of the transport packet and ends at the end of the transport packet. Sections, however, do not necessarily start at the beginning nor finish at the end of the transport packet. For a section, the transport packet can start with the end of another section.
At each decoder or set top box, the transport stream is decoded. To achieve the decoding of the transport stream, each set top box is provided with a transport interface, which provides an input interface between the transport stream input to the box and thin actual MPEG-2 decoders which decode the audio and video information and sections broadcast. The transport interface demultiplexes the transport stream to retain only those transport packets, which are required by the particular set top box for decoding. The transport stream is a set of different services time division multiplexed and the purpose of the transport interface is to demultiplex them. At a front input end of the transport interface, a time demultiplex function is performed to separate the transport stream into its component transport packets.
Each transport packet has associated therewith in its header a packet identifier (PID) which identifies the type of packet and various information associated with the data in the packets including the type of packet (PES or PSI). Each particular receiver or set top box is only interested in receiving packets having packet identifiers of interest to the particular set top box, for instance those associated with the particular television program selected for viewing. Thus, once the incoming transport stream has been time demultiplexed to recover the transport packets, it is necessary to further demultiplex the transport packets to retain only those having packet identifiers required by the receiver.
The transport interface merely uses the header of PES transport packets to demultiplex them, and stores the data payload of the demultiplexed packets in the memory. The transport interface similarly demultiplexes PSI transport packets but then filters the sections of the demultiplexed packets to retain only sections required by the receiver, before storing the filtered sections in the memory without further processing.
In order that the receiver can cope with this mix of program information, the MPEG-2 standard defines all types of tables, which together make up the MPEG-2 program specific information (PSI).
The transport interface performs, at the receiver, a number of demultiplexing operations. As stated hereinabove, initially the transport interface time demultiplexes a received transport stream. The data packets extracted from the time demultiplexed transport stream are then demultiplexed so as to retain only those data packets required by the particular receiver. These data packets may be audio or video information (IEPESs) or sections (IEPSI). Even though a data packet containing sections is demultiplexed by the receiver to be retained, it is possible that the information provided by the section is not required by the receiver. For instance the section may be associated with the table that is not of interest to the receiver, the sections may be associated with tables that have already been processed by the receiver, the sections may be versions of tables that have already been processed, or the sections may be associated with information relating to a specific set top box address which does not match the current set top box address, for example entitlement messages (ie ECM, EMM entitlement control message, entitlement management message).
It is therefore generally desirable to provide a further level of demultiplexing in the receiver so as to discard those sections of no interest to the receiver. In one known technique, the main processor of the receiver, after demultiplexing the transport packets identifies those which are sections and buffers the sections in the memory. The main processor then uses a content addressable memory (CAM) to determine whether any particular section should be retained or discarded. At least a part of the buffer section is compared with certain information stored in the CAM. This software implementation places an additional demand on the processing part of the main processor CPU of the receiver which becomes increasingly undesirable as the task required to be performed by the main processor CPU of the receiver increase and become more complex. Additionally, this processing by the CPU can be very slow. A header section search may for example be need to be done at least once every three bytes, checking a large number of filters, eg 48. This is done at a bit level and makes use of masking processes to search the different headers. The filter may have to deal with varying numbers of bytes. Furthermore, additional calculations are sometimes performed on the results.
A more automatic hardware solution has been proposed. This effectively is a hardware solution where the filters are preconfigured and, the processor does not perform any checks. This has the advantage in that the filtering can be accomplished quickly. However, because the filtering is implemented by hardware, this solution is not flexible. Thus, any changes which are required to the filtering cannot be accommodated. This means that changes in the broadcast standard may not be accommodated by the filtering. Additionally, further checks which may need to be done from time to time can also not be done.